/**
 * Copyright (C), 2001-2031, www.bosssof.com.cn
 * FileName: RoleMapper.java
 * Author: chen
 * Date: 2024/5/31 13:42
 * Description: * ${description}
 * History:
 * Date Author Version Desc
 * 2024-01-01 bosssoft 1.0.0 initialize this file
 */
package com.bosssoft.g1.mapper;

import com.bosssoft.g1.dto.CompanyDTO;
import com.bosssoft.g1.dto.RoleDTO;
import com.bosssoft.g1.entity.Node;
import com.bosssoft.g1.entity.Role;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

/**
 * @className: RoleMapper
 * @description:
 * 解决什么问题：
 * 主要方法：
 * methodxx
 * 注意事项：
 * @author chen
 * @date: 2024/5/31 13:42
 * @since 1.0
 */
@org.apache.ibatis.annotations.Mapper
public interface RoleMapper extends Mapper<Role> {
    /**
     * 返回所有角色总数量
     * @return
     */
    int getTotalCount();

    /**
     * 返回所有角色信息
     * @param offset
     * @param pageSize
     * @return
     */
    List<RoleDTO> getAllRoles(@Param("offset") Integer offset, @Param("pageSize") Integer pageSize);

    /**
     * 插入/更新角色
     * @param role
     * @return
     */
    int insertRole(@Param("role") Role role);

    /**
     * 根据角色编号判断该角色是否已经存在
     * @param code
     * @return
     */
    Boolean roleExistByRoleCode(String code);

    /**
     * 根据角色id查询用户资源
     * @param userid
     * @return
     */
    List<Node> queryUserResourceByRoId(@Param("userId") Long userid);

    /**
     * 根据角色id查询角色公司信息
     * @param id
     * @return
     */
    List<CompanyDTO> queryRoleCompanyByRoId(@Param("id") Long id);
}